summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/TwoPaneOnBackPressedCallback.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/TwoPaneOnBackPressedCallback.java')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/TwoPaneOnBackPressedCallback.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/TwoPaneOnBackPressedCallback.java b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/TwoPaneOnBackPressedCallback.java
new file mode 100644
index 000000000..78e5f0965
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/TwoPaneOnBackPressedCallback.java
@@ -0,0 +1,37 @@
+package org.yuzu.yuzu_emu.ui;
+
+import android.view.View;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.NonNull;
+import androidx.slidingpanelayout.widget.SlidingPaneLayout;
+
+public class TwoPaneOnBackPressedCallback extends OnBackPressedCallback
+ implements SlidingPaneLayout.PanelSlideListener {
+ private final SlidingPaneLayout mSlidingPaneLayout;
+
+ public TwoPaneOnBackPressedCallback(@NonNull SlidingPaneLayout slidingPaneLayout) {
+ super(slidingPaneLayout.isSlideable() && slidingPaneLayout.isOpen());
+ mSlidingPaneLayout = slidingPaneLayout;
+ slidingPaneLayout.addPanelSlideListener(this);
+ }
+
+ @Override
+ public void handleOnBackPressed() {
+ mSlidingPaneLayout.close();
+ }
+
+ @Override
+ public void onPanelSlide(@NonNull View panel, float slideOffset) {
+ }
+
+ @Override
+ public void onPanelOpened(@NonNull View panel) {
+ setEnabled(true);
+ }
+
+ @Override
+ public void onPanelClosed(@NonNull View panel) {
+ setEnabled(false);
+ }
+}